package com.airlines.crewassignment.domain.solver;

import java.io.Serializable;
import java.util.Comparator;

import org.apache.commons.lang3.builder.CompareToBuilder;

import com.airlines.crewassignment.domain.Crew;

/**
 * @author xxxx
 * @date 2018年4月16日 
 * @description 如果在drools中使用启发式算法，则需要在 CrewPositionAssignment.crew 中标注此类
 * @see CrewPositionAssignment
 */
public class CrewStrengthComparator implements Comparator<Crew>, Serializable{
	private static final long serialVersionUID = 4943170795510334755L;

	@Override
	public int compare(Crew a, Crew b) {
		  // a在前，表示正序，优先安排小的
		  // b在前，表示倒序，优先安排大的
		
		  return new CompareToBuilder()
				     //优先安排月飞行时间小的，年飞行小时小的   
				  	.append(getBooleanInt(b.getNationCn()),getBooleanInt(a.getNewPosition()))
	                //.append(a.getWorkcode(), b.getWorkcode())
	                .toComparison();
	}

	private int getBooleanInt(Boolean flag){
		if(flag == true){
			return 1;
		}else{
			return 0;
		}
	}
}
